<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>何为数据代理</title>
  </head>
  <body>
    <!-- 数据代理：就是一个对象通过代理对另一个对象中的属性的操作(读写) -->
    <script type="text/javascript">
      let obj = {x: 100}
      let obj2 = {y: 300}
      Object.defineProperty(obj, 'y', {
        //   value和 get 是同一个作用，只能同时用一个。
        //   writable和set是同一个作用，用一个。
        // value: 10,
        enumerable: true,
        // writable: true,
        configurable: true,
        get() {
          console.log('obj访问了obj2里面的y属性')
          return obj2.y
        },
        set(value) {
          console.log('obj修改了obj2里面的y属性')
          obj2.y = value
        },
      })
    </script>
  </body>
</html>
